﻿/*直接排序
 *
 */
#include "straightinsertionsort.h"
#include "swap.h"

StraightInsertionSort::StraightInsertionSort()
{

}

void straightInsertionSort(int *array, int length)
{
    if(array==NULL||length<1)
        return;

    for(int i=1;i<length;++i){//假设前面的元素已经有序
        if(array[i]<array[i-1]){//当前元素小于前方元素时，记录下来

            int tmp=array[i];//

            int j;//拿当前元素同前面已有序序列各个元素相比较，向后移动比较大的元素，找到合适的位置，
            for(j=i-1;array[j]>tmp && j>=0;--j)
                array[j+1]=array[j];

            array[j+1]=tmp;//插入该元素
        }
    }
}
